"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/5 11:32
@Description : 
 死锁   多线程并发时 为了保证数据安全性问题  使用线程锁，但是在程序执行过程中由于异常的出现，可能导致线程锁
 不能及时释放，出现死锁现象 导致程序无法结束
"""
import threading

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

lock = threading.Lock()


# 读取列表中的元素
def get_lst_num(index):
    lock.acquire()
    try:
        print(lst[index])
    except  Exception as e:
        print(str(e))
    finally:
        lock.release()


if __name__ == '__main__':
    for i in range(20):
        threading.Thread(target=get_lst_num, args=(i,)).start()
